Pular para o conteúdo principal

Integração Batch - Tipos de Body & Exemplos

Este documento fornece exemplos abrangentes of de todos os tipos de body aceitos pela API GroupLink para configuração de integração de dados batch.

Visão Geral

A API GroupLink aceita diferentes tipos de configuração de armazenamento através do parâmetro type. Cada tipo requer credenciais específicas no campo data.

Tipos de Armazenamento Suportados

  1. AWS S3 (s3_identity)
  2. Azure Blob Storage (azure_identity)
  3. Google Cloud Storage (gcs_identity)
  4. API Token (api_token_identity)

1. AWS S3 Configuration

Estrutura do Body da Requisição

{
"namespace": "batch",
"type": "s3_identity",
"data": {
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"end_point": "https://s3.amazonaws.com",
"region": "us-east-1"
}
}

Exemplo cURL

curl -X 'PATCH' 'https://grouplink-api.apidatasafe.com/organization-vault' \
-H 'Content-Tipo: application/json' \
-H 'Authorization: Bearer YOUR-ACCESS-TOKEN' \
-d '{
"namespace": "batch",
"type": "s3_identity",
"data": {
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"end_point": "https://s3.amazonaws.com",
"region": "us-east-1"
}
}'

Exemplo Swagger

No Swagger UI em GroupLinkAPI OrganizationVault:

  1. Navegue até /organization-vault PATCH endpoint
  2. Clique em "Try it out"
  3. Use este body de requisição:
{
"namespace": "batch",
"type": "s3_identity",
"data": {
"access_key": "YOUR_AWS_ACCESS_KEY",
"secret_key": "YOUR_AWS_SECRET_KEY",
"end_point": "https://s3.amazonaws.com",
"region": "sa-east-1"
}
}

Exemplo de criação de bucket e chave de acesso na AWS: Bucket na AWS para recebimento de arquivos


2. Azure Blob Storage Configuration

Estrutura do Body da Requisição

{
"namespace": "batch",
"type": "azure_identity",
"data": {
"tenant_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"client_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"connection_string": "https://AccountName.dfs.core.windows.net/bucket-name"
}
}

Exemplo cURL

curl -X 'PATCH' 'https://grouplink-api.apidatasafe.com/organization-vault' \
-H 'Content-Tipo: application/json' \
-H 'Authorization: Bearer YOUR-ACCESS-TOKEN' \
-d '{
"namespace": "batch",
"type": "azure_identity",
"data": {
"tenant_id": "12345678-1234-1234-1234-123456789012",
"client_id": "87654321-4321-4321-4321-210987654321",
"client_secret": "MySecretValue123",
"connection_string": "https://myaccount.dfs.core.windows.net/my-container"
}
}'

Exemplo Swagger

{
"namespace": "batch",
"type": "azure_identity",
"data": {
"tenant_id": "TENANT-123",
"client_id": "12345",
"client_secret": "G4UL3S",
"connection_string": "https://AccountName.dfs.core.windows.net/bucket-name"
}
}

3. Google Cloud Storage Configuration

Estrutura do Body da Requisição

{
"namespace": "batch",
"type": "gcs_identity",
"data": {
"credentials_json": "{\"type\":\"service_account\",\"project_id\":\"example-project\",\"private_key_id\":\"...\",\"private_key\":\"...\"}",
"project_id": "my-project-123456"
}
}

Exemplo cURL

curl -X 'PATCH' 'https://grouplink-api.apidatasafe.com/organization-vault' \
-H 'Content-Tipo: application/json' \
-H 'Authorization: Bearer YOUR-ACCESS-TOKEN' \
-d '{
"namespace": "batch",
"type": "gcs_identity",
"data": {
"credentials_json": "{\"type\":\"service_account\",\"project_id\":\"my-project\",\"private_key_id\":\"key123\",\"private_key\":\"-----BEGIN PRIVATE KEY-----\\nMIIE...\\n-----END PRIVATE KEY-----\\n\",\"client_email\":\"service@my-project.iam.gserviceaccount.com\",\"client_id\":\"123456789\"}",
"project_id": "my-project-123456"
}
}'

Exemplo Swagger

{
"namespace": "batch",
"type": "gcs_identity",
"data": {
"credentials_json": "{\"type\":\"service_account\",\"project_id\":\"example-project\",\"private_key_id\":\"...\",\"private_key\":\"...\"}",
"project_id": "my-project-123456"
}
}

Note: The credentials_json must be a stringified JSON object (content of the JSON file from Google Cloud Console). Make sure to escape quotes properly.


Estrutura do Body da Requisição

{
"namespace": "batch",
"type": "api_token_identity",
"data": {
"token": "sk-1234567890abcdef"
}
}

Exemplo cURL

curl -X 'PATCH' 'https://grouplink-api.apidatasafe.com/organization-vault' \
-H 'Content-Tipo: application/json' \
-H 'Authorization: Bearer YOUR-ACCESS-TOKEN' \
-d '{
"namespace": "batch",
"type": "api_token_identity",
"data": {
"token": "your-api-token-here"
}
}'

Exemplo Swagger

{
"namespace": "batch",
"type": "api_token_identity",
"data": {
"token": "sk-1234567890abcdef"
}
}

Descrições dos Campos

Campos Comuns

CampoTipoObrigatórioDescrição
namespacestringSimNamespace para organizar entradas do vault (e.g., "batch")
typestringSimTipo of storage: s3_identity, azure_identity, gcs_identity, or api_token_identity
dataobjectSimObjeto de credenciais (estrutura varia por tipo)

AWS S3 Credentials (s3_identity)

CampoTipoTamanho MáximoDescrição
access_keystring2048Chave de acesso (ID de usuário) de uma conta no serviço S3
secret_keystring2048Chave secreta (senha) de uma conta no serviço S3
end_pointstring (URL)2048URL do serviço de armazenamento de objetos
regionstring100Região AWS nas propriedades do seu bucket

Azure Credentials (azure_identity)

CampoTipoTamanho MáximoDescrição
tenant_idstring2048O ID do tenant (diretório) do Azure Active Directory
client_idstring2048O ID do cliente (aplicação) de um App Registration no tenant
client_secretstring2048Um client secret que foi gerado para o App Registration
connection_stringstring (URL)2048String de conexão da conta ou string de conexão SAS de uma conta de armazenamento Azure

Google Cloud Storage Credentials (gcs_identity)

CampoTipoTamanho MáximoDescrição
credentials_jsonstring (JSON)10240JSON de Credenciais da Conta de Serviço Google (conteúdo do arquivo JSON)
project_idstring100ID do Projeto Google

API Token Credentials (api_token_identity)

CampoTipoTamanho MáximoDescrição
tokenstring1024Token de autenticação genérico

Formato da Resposta

Todas as requisições bem-sucedidas retornam o ID da credencial criada:

{
"id": "credential-uuid-here"
}

O namespace usado deve ser informado ao ativar a integração.

Importante: Não será possível visualizar os dados completos após serem importados. Os dados são criptografados usando AES 256 GCM na camada de aplicação/banco de dados e novamente todos os dados são salvos com LUKS em repouso no servidor de banco de dados.


Documentação da API

Para documentação completa da API, consulte:


Próximos Passos